import axios from 'axios'
import { ElMessage } from 'element-plus'

// 创建axios实例
const api = axios.create({
  baseURL: '/flowapi',
  timeout: 10000,
  withCredentials: true // 重要：确保cookie被发送
})

// 请求拦截器
api.interceptors.request.use(
  (config) => {
    return config
  },
  (error) => {
    return Promise.reject(error)
  }
)

// 响应拦截器
api.interceptors.response.use(
  (response) => {
    return response.data
  },
  (error) => {
    // 如果是检查登录状态的请求，不显示错误信息，也不跳转
    if (error.config?.url === '/auth/check') {
      return Promise.reject(error)
    }
    
    const message = error.response?.data?.message || '网络错误'
    console.log("响应拦截器启动")
    console.log(message)
    // ElMessage.error(message)
    
    // 如果是401错误且不是认证检查请求，跳转到登录页
    if (error.response?.status === 401 && error.config?.url !== '/auth/check') {
      // 使用router跳转而不是直接改变location，避免页面刷新
      setTimeout(() => {
        window.location.hash = '#/login'
      }, 1000)
    }
    
    return Promise.reject(error)
  }
)

export default api
